﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ElevatorDispatching
{

    /// <summary>
    /// 楼层群组生成器
    /// </summary>
    public interface IFloorGroupBuilder
    {
        /// <summary>
        /// 设置最低的楼层编号
        /// </summary>
        /// <param name="lowestFloorId">最低的楼层编号</param>
        /// <returns>楼层群组生成器本身</returns>
        IFloorGroupBuilder Lowest(int lowestFloorId);

        /// <summary>
        /// 设置最高的楼层编号
        /// </summary>
        /// <param name="highestFloorId">最高的楼层编号</param>
        /// <returns>楼层群组生成器本身</returns>
        IFloorGroupBuilder Highest(int highestFloorId);

        /// <summary>
        /// 设置跳过的楼层编号
        /// </summary>
        /// <param name="excludedFloorIdList">跳过的楼层编号</param>
        /// <returns></returns>
        IFloorGroupBuilder Exclude(params int[] excludedFloorIdList);

        /// <summary>
        /// 生成楼层群组
        /// </summary>
        /// <returns>生成的楼层群组</returns>
        FloorGroup Build();
    }
}
